// 包名   其中java语言名称
// 最终结果 ： 当前目录下 生成的文件目录 ./gen-java/thrift
// 包名外层多了一个文件路径 gen-java
namespace java thrift
//类型别名
typedef i16 short
typedef i32 int
typedef i64 long
typedef bool boolean
typedef string String
//不支持日期类型
struct Person {
    1:optional String username,
    2:optional int age,
    3:optional boolean married
}
//自定义异常
exception DateException {
    1:optional String message,
    2:optional String callStack,
    3:optional String date
}
service PersonService{
    Person getPersonByUsername(1:required String username) throws (1:DateException dateException),
    void savePerson(1:required Person person) throws (1:DateException dateException)
}